\contentsline {section}{\numberline {1}Introduction}{3}
\contentsline {section}{\numberline {2}The Modules of the Library}{4}
\contentsline {section}{\numberline {3}Matrix-Based Coding In General}{5}
\contentsline {section}{\numberline {4}Bit-Matrix Coding In General}{6}
\contentsline {subsection}{\numberline {4.1}Using a schedule rather than a bit-matrix}{7}
\contentsline {section}{\numberline {5}MDS Codes}{7}
\contentsline {section}{\numberline {6}Part 1 of the Library: Galois Field Arithmetic (galois.h)}{8}
\contentsline {subsection}{\numberline {6.1}Galois procedures used in Jerasure - galois.cpp}{8}
\contentsline {subsection}{\numberline {6.2}Example programs}{8}
\contentsline {section}{\numberline {7}Part 2 of the Library: Kernel Classes (jerasure.h)}{9}
\contentsline {subsection}{\numberline {7.1}The JER\_Region class - jerasure.h}{9}
\contentsline {subsection}{\numberline {7.2}Encoding and decoding data - jer\_slices.cpp}{9}
\contentsline {subsection}{\numberline {7.3}Generator matrices and scheduling - jer\_gen\_t.cpp}{13}
\contentsline {subsection}{\numberline {7.4}Matrices and their basic operations - jer\_matrix.cpp}{14}
\contentsline {subsection}{\numberline {7.5}Example programs}{18}
\contentsline {section}{\numberline {8}Part 3 of the Library: Reed-Solomon Coding (reed\_sol.h)}{21}
\contentsline {subsection}{\numberline {8.1}Cauchy matrices}{21}
\contentsline {subsection}{\numberline {8.2}Reed-Solomon generators - reed\_sol.cpp}{22}
\contentsline {subsection}{\numberline {8.3}Example Programs}{24}
\contentsline {section}{\numberline {9}Part 4 of the Library: Bitmatrix-based Coding (bitmatrices.h)}{42}
\contentsline {subsection}{\numberline {9.1}EVENODD, RDP, and minimal density RAID-6 generators - bitmatrices.cpp}{42}
\contentsline {subsection}{\numberline {9.2}Example programs}{43}
\contentsline {section}{\numberline {10}Example Application 1: Encoder and Decoder}{49}
\contentsline {subsection}{\numberline {10.1}Encoder - encoder.cpp}{49}
\contentsline {subsection}{\numberline {10.2}Decoder - decoder.cpp}{50}
\contentsline {subsection}{\numberline {10.3}Judicious selection of buffer and packet sizes}{51}
\contentsline {section}{\numberline {11}Example Application 2: Personal File Archiving}{52}
\contentsline {subsection}{\numberline {11.1}Personal archiving - personal\_archiving.cpp}{52}
\contentsline {subsection}{\numberline {11.2}Personal retrieval - personal\_retrieval.cpp}{53}
\contentsline {section}{\numberline {12}Example Application 3: RAID}{55}
\contentsline {subsection}{\numberline {12.1}raid.cpp}{55}
